// 第三方模块
const Koa = require("koa");
const KoaBody = require("koa-body");
const cors = require("@koa/cors");

// const uerRouter = require("../router/user.route");
// const goodsRouer = require("../router/goods.route");
const router = require("../router");
const errHandler = require("../app/err.handler");

// 创建一个APP实例对象
const app = new Koa();

// -------------------------
// 抽离出去,没有必要写了
// const Router = require("koa-router");
// const indexRouter = new Router();

// indexRouter.get("/user", (ctx, next) => {
//   ctx.body = "路由加载";
// });
// --------------------------

// 在app中挂载中间件, app.use只可以接受一个函数作为参数
// app.use((ctx, next) => {
//   ctx.body = "你好!";
// });

// 处理跨域请求
app.use(cors());

// 在所有的路由之前,挂载表单参数处理的中间件
app.use(KoaBody());

//给APP挂载路由中间件,
// app.use(indexRouter.routes());
// app.use(uerRouter.routes());
// app.use(goodsRouer.routes());
app.use(router.routes()); //注册所有的路由文件
app.use(router.allowedMethods()); //处理不被允许的请求方式
// 统一的错误处理
app.on("error", errHandler);

module.exports = app;
